<?php

namespace Unl\HomologacionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContext;


/**
* @ORM\Entity(repositoryClass="Unl\HomologacionBundle\Repository\TemaRepository")
* @Assert\Callback(methods={"esNombreValido"})
*/
class Tema
{
    /**
    * @ORM\Id
    * @ORM\Column(type="bigint")
    * @ORM\GeneratedValue(strategy="AUTO")
    */
    protected $id;

    /**
    * @ORM\Column(type="string",length=255, nullable=true)
    * @Assert\NotBlank(message = "Debe ingresar Nombre en la tabla de Contenidos.")
    */
    protected $nombre;

    /**
    * @ORM\ManyToOne(targetEntity="Unidad", inversedBy="temas")
    * @ORM\JoinColumn(name="unidad_id", referencedColumnName="id")
    */
    protected $unidad;


    public function __construct()
    {
        
    }
    
    /**
     * Get id
     *
     * @return bigint 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set unidad
     *
     * @param Unl\HomologacionBundle\Entity\Unidad $unidad
     */
    public function setUnidad($unidad)
    {
        $this->unidad = $unidad;
    }

    /**
     * Get unidad
     *
     * @return Unl\HomologacionBundle\Entity\Unidad 
     */
    public function getUnidad()
    {
        return $this->unidad;
    }

    
    public function __toString()
    {
        return $this->id.' '.$this->nombre;
    }

    public function esNombreValido(ExecutionContext $context){
         if (empty($this->nombre)) {
           $context->addViolation('En la tabla Contenidos el campo Nombre no puede ser blanco', array(), null);
           return false ;
        }
        return true;
    }
}